Integrated resource tracking system

ABSTRACT

A computer network including a server computer, a first computer implementing a first software tool having a first function and a second software tool having a second function, and a second computer implementing the first software tool and the second software tool. The server computer is configured to gather first data regarding use of the first software tool; gather second data regarding use of the second software tool; and based on the first data and the second data, link activities of the first user and the second user to a performance goal for any one of the first user, the second user, a team including at least the first user or the second user, or an organization to which the first user and the second user belong. In executing the third program code, a communications link between the server computer and the first computer or the second computer is improved.

This application claims priority to, and is a non-provisionalapplication based on, provisional application 62/134,898, filed Mar. 18,2015.

BACKGROUND INFORMATION

1. Field

The illustrative embodiments relate to improved computers and computernetworks, particularly server computers having an integrated resourcetracking system and, more particularly, to a method and system whichintegrates multiple systems and applications together to determinetrends by analyzing tags and/or keywords of multiple users over themultiple integrated systems and applications.

2. Background

Organizations have always had a need to manage, organize, track, anddirect its ongoing activities. The well-known status report has been onetechnique for organization management. Status reports may provideinformation on the status of a person, activity, thing, project, group,an entire organization, or many other things. Thus, for example, astatus report may relay information regarding the state of projectswithin an organization in relation to an overall goal of theorganization. In still another example, a periodic status report mayenable a manager to track performance and progress by an individual.Other examples may include tracking projects within teams, supportingcommunication of teams to executive management, monitoring projectprogress, monitoring accomplishments, identifying bottlenecks, and/oridentifying blocks. Many other examples are possible.

Manual means for generating and tracking such reports are inadequate formodern organizations. In many cases, the process of manually generatingor collating reports is undesirably time consuming. In some cases,consolidation and alignment of different reports is unavailable. Thus,there may not be visibility on peer and cross team activities,multi-member project information may be repeated without alignment,links to organization objectives may be intangible, and other problemsmay arise. Another difficulty with manual techniques is that data forreports may be out of date by the time the report is to be evaluated.

Progress has been made with respect to addressing these difficultiesusing automated techniques. For example, templates with drop-downentries or blanks may speed the report generation process. Programs suchas OUTLOOK® may be used to track projects, deadlines, or workactivities. Programs such as RALLY® may be used to track softwaredevelopment projects. Programs such as YAMMER® may be used to provide aspecialized social networking service to help organize groups, sharefiles, and collaborate on projects. Many different kinds of these suchprograms exist.

In fact, there has been a proliferation of enterprise, projectmanagement, report generation, and human resource capital programs. Somemodern work environments may use many such programs, but the individualuser must track the use of such programs. Currently, there is nomechanism for integrating such tools on a dynamic basis, tools which maybe published or produced by a wide variety of different companies orindividuals. Often, integration of different such tools is impossible orimpractical.

SUMMARY

The illustrative embodiments provide for a computer network. Thecomputer network includes a server computer having a server processorand a server non-transitory computer readable storage medium. Thecomputer network also includes a first computer, operable by a firstuser, in communication with the server computer. The first computer hasa first processor and a first non-transitory computer readable storagemedium storing first program code which, when executed by the firstprocessor, implements a first software tool having a first function anda second software tool having a second function. The computer networkalso includes a second computer, operable by a second user, incommunication with the server computer, the second computer having asecond processor and a second non-transitory computer readable storagemedium storing second program code which, when executed by the secondprocessor, implements the first software tool having the first functionand the second software tool having the second function. The servernon-transitory computer readable storage medium stores third programcode which, when executed by the server processor, is configured togather first data regarding use of the first software tool; gathersecond data regarding use of the second software tool; and based on thefirst data and the second data, link activities of the first user andthe second user to a performance goal for any one of the first user, thesecond user, a team including at least the first user or the seconduser, or an organization to which the first user and the second userbelong. In executing the program code, a communications link between thefirst computer and the second computer is improved.

The illustrative embodiments also provide for an apparatus. Theapparatus includes a server computer having a server processor and aserver non-transitory computer readable storage medium. The servercomputer is in communication with a first computer, operable by a firstuser. The first computer has a first processor and a firstnon-transitory computer readable storage medium storing first programcode which, when executed by the first processor, implements a firstsoftware tool having a first function and a second software tool havinga second function. The server computer is in communication with a secondcomputer, operable by a second user, the second computer having a secondprocessor and a second non-transitory computer readable storage mediumstoring second program code which, when executed by the secondprocessor, implements the first software tool having the first functionand the second software tool having the second function. The servernon-transitory computer readable storage medium stores third programcode which, when executed by the server processor, is configured to:gather first data regarding use of the first software tool; gathersecond data regarding use of the second software tool; and based on thefirst data and the second data, link activities of the first user andthe second user to a performance goal for any one of the first user, thesecond user, a team including at least the first user or the seconduser, or an organization to which the first user and the second userbelong. In executing the program code, the server computer improves acommunication links between the first computer and the second computer.

The illustrative embodiments also provide for a method implemented in aserver computer having a server processor and a server non-transitorycomputer readable storage medium, the server computer being incommunication with a first computer, operable by a first user, whereinthe first computer has a first processor and a first non-transitorycomputer readable storage medium storing first program code which, whenexecuted by the first processor, implements a first software tool havinga first function and a second software tool having a second function,the server computer being in communication with a second computer,operable by a second user, the second computer having a second processorand a second non-transitory computer readable storage medium storingsecond program code which, when executed by the second processor,implements the first software tool having the first function and thesecond software tool having the second function. The servernon-transitory computer readable storage medium stores third programcode which, when executed by the server processor, implements themethod. The method includes gathering first data regarding use of thefirst software tool. The method also includes gathering second dataregarding use of the second software tool. The method also includesimproving, using the server computer, a communications link between thefirst computer and the second computer by linking, based on the firstdata and the second data, activities of the first user and the seconduser to a performance goal for any one of the first user, the seconduser, a team including at least the first user or the second user, or anorganization to which the first user and the second user belong.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the illustrativeembodiments are set forth in the appended claims. The illustrativeembodiments, however, as well as a preferred mode of use, furtherobjectives and features thereof, will best be understood by reference tothe following detailed description of an illustrative embodiment of thepresent disclosure when read in conjunction with the accompanyingdrawings, wherein:

FIG. 1 is an illustration of different roles of different individuals inan organization, in accordance with an illustrative embodiment;

FIG. 2 illustrates a resource tracking system, in accordance with anillustrative embodiment;

FIG. 3 illustrates a view of a resource tracking system, in accordancewith an illustrative embodiment;

FIG. 4 illustrates a view of a resource tracking system, in accordancewith an illustrative embodiment;

FIG. 5 illustrates a view of a resource tracking system, in accordancewith an illustrative embodiment;

FIG. 6 illustrates a view of a resource tracking system, in accordancewith an illustrative embodiment;

FIG. 7 is a graph illustrating an output of a resource tracking system,in accordance with an illustrative embodiment;

FIG. 8 is a relationship diagram illustrating an output of a resourcetracking system, in accordance with an illustrative embodiment;

FIG. 9 is a status report output by a resource tracking system, inaccordance with an illustrative embodiment;

FIG. 10 is a bar graph report output by a resource tracking system, inaccordance with an illustrative embodiment;

FIG. 11 is a block diagram of an architecture of a resource trackingsystem, in accordance with an illustrative embodiment;

FIG. 12 is a block diagram illustrating details of the resource trackingsystem architecture shown in FIG. 11, in accordance with an illustrativeembodiment;

FIG. 13 is an example of an application programming interface usable ina resource tracking system, in accordance with an illustrativeembodiment;

FIG. 14 is a block diagram of a resource tracking system, in accordancewith an illustrative embodiment;

FIG. 15 is a flowchart of a method for performing resource tracking, inaccordance with an illustrative embodiment;

FIG. 16 is a block diagram of a data processing system, in accordancewith an illustrative embodiment;

FIG. 17 is a block diagram of a cloud environment, in accordance with anillustrative embodiment; and

FIG. 18 is a block diagram of a data processing system, in accordancewith an illustrative embodiment.

DETAILED DESCRIPTION

The illustrative embodiments recognize and take into account that amultiplicity of reporting, tracking, scheduling, and project managementsoftware may result in an unwieldy system for producing reports,tracking a project, monitoring individual performance or progress, orotherwise monitoring and tracking the performance of an organization.

The illustrative embodiments may, broadly speaking, be referred to as atracker. The tracker is embodied as a physical machine, or as programcode stored on a non-transitory computer readable storage medium whichsubsequently makes one or more computers perform more efficiently.

Purposes of the tracker of the illustrative embodiments may includeenriching organization operations, consolidating real information aboutan organization, and providing metrics for leaders, managers, andindividuals to ensure organization is aligned and individuals are ontrack to complete their tasks and responsibilities. The tracker of theillustrative embodiments aims to reduce or eliminate the process ofmanual status reporting by providing simple tools for parsinginformation about individual activities. By building a visual pinboardof ‘My Work’, individuals can quickly visualize their work life and workactivity.

Thus, the tracker of the illustrative embodiments provides quickinsights into the top trends within an organization. The trackerprovides links to the tools an organization already uses, includingthird party applications. The tracker can integrate with numerous thirdparty tools and may have an exposed application programming interface(API) that allows third party applications to integrate with itsactivity feed. Default APIs may be provided for commonly used programssuch as, but not limited to, RALLY®, OUTLOOK®, CONFLUENCE®, and YAMMER®.

In computer programming, an API is a set of routines, protocols, ortools used for building software applications. An API may express asoftware component in terms of its operations, inputs, outputs, andunderlying types. An API may define functionalities that are independentof their respective implementations, which allows definitions andimplementations to vary without compromising an interface. An API maymake developing a software program easier by providing the buildingblocks for the software program. A programmer, or another softwareprogram, can then put the blocks together.

The tracker of the illustrative embodiments may bridge a gap betweengoal management and ongoing organization activity by allowing a user tolink, manually or automatically, activities to defined goals. Forexample, users can manually select an activity feed from an externalsource, and link it to a given goal. In another example, users canautomatically associate a tag or reference to a particular goal. When anactivity comes in the feed with a link to that tag or reference, theactivity may be automatically associated with the related goal.

The illustrative embodiments may provide quick insights into the trendswithin an organization by identifying tags and most common terms andword references through text and data mining. Trends can be measured onan overall company metric, by department, team, and individual.

The illustrative embodiments may show cross-departmental collaborationand alignment by assessing information about individuals collaboratingtogether on a given activity. The illustrative embodiments may providean up to date status-tracking tool that shows the overarchingorganizational activity in alignment to the overall organizational,team, and individual goals.

The functionality behind the tracker of the illustrative embodimentsincludes both product functionality and a new product. The functionalityof the illustrative embodiments includes the ability to integrateexternal third party sources such as, but not limited to, CONFLUENCE®,OUTLOOK®, RALLY®, YAMMER®, and others, with an aggregator in order toperform one or more functions. These functions include the ability totrack activities users perform on daily, weekly, monthly, and yearlybases; or, to find top trends within an organization.

The tracker of the illustrative embodiments may link relevantorganization activity, such as the work workers perform on a daily andongoing base, with human resources, performance, strategic planning, andtalent management. The tracker may aggregate information from thirdparty APIs and pool them to provide insights into the knowledge and workwithin the company. This knowledge then may be leveraged in order toidentify the trending activities within a company and used to identifyinternal dialect, acronyms, and knowledge.

The tracker of the illustrative embodiments can also leverage theinformation gathered from third party integration tools in order tobuild out a competency catalog that is aligned with the work being donewithin the company. From a strategic management perspective, the trackermay provide insights into the types of activities being performed inorder to achieve various types of goals.

For example, the tracker can identify requirements for the goal to‘build a new product’. The product manager typically may spend the firstfew weeks of the goal's start dates doing research and meeting with theuser experience and user interface teams. The product manager may alsotypically spend a few months after the start of a goal in a program suchas RALLY®, building features and user stories, and in meetings with ascrum team. The product manager may also spend several months into thegoal working with product marketing in order to build “go to market”trends.

From an individual review perspective, the tracker of the illustrativeembodiments can provide a timeline of all the work an individual hasdone throughout the course of the performance cycle. In this context,the individual can view an interactive map that shows their workpatterns, key collaborators, and overall accomplishments throughout theyear.

The illustrative embodiments may also have the ability to integrate withreward and feedback modules, and may provide a tool for building orcascading strategic goals and defining performance review cycles. Beyondhuman resource data, the tracker of the illustrative embodiments canprovide tools to link with project management and customer relationshipmanagement solutions in order to incorporate project plans, customerdata, and related tasks into the tracker and its human resourceprocesses.

FIG. 1 is an illustration of different roles of different individuals inan organization, in accordance with an illustrative embodiment. Teamenvironment 100 may be two or more individuals working towards a commongoal, possibly within a single organization but possibly operating indifferent organizations. Person 102 may be a lower-level worker whosepurpose is to implement specific tasks with respect to an aspect of thegoal. For example, if person 102 were an engineer, person 102 might keeptrack of issues such as what progress has the person made on a designproject within a time period, whether he or she is working on thecorrect action items, whether milestones have been met, or possibly manyother engineering level issues.

In turn, person 104 may be a team leader with several engineersoperating under person 104, including person 102. As a team leader,person 104 may keep track of team goals, track individual and groupperformance, track whether worker goals are aligned, or possibly manyother matters.

At a higher level of organization, person 106 may be an executiveresponsible for managing the project, or possibly an entire enterpriseor organization. Thus, person 106 may be concerned with differentmatters, such as whether organizational initiatives are on track,whether teams or individuals are working on the correctly assignedprojects, whether teams are operating within budget, and possibly manyother matters.

In addition, for larger organizations, other departments may beinvolved, such as person 108 who is responsible for some aspect of humanresource management. Such a person may be responsible for tracking whatskills are being used most, whether persons in the organization arebeing evaluated correctly, determining what skills are needed, andpossibly many other matters.

The tracker of the illustrative embodiments allows each one of thesepersons to answer these questions and more. The tracker of theillustrative embodiments improves the efficiency and speed of computernetworks by quickly analyzing and reporting desirable information. Thetracker of the illustrative embodiments may also allow individual usersaccess to tailored information important to their particular role.

For example, the illustrative embodiments may allow person 102 toquickly align work activities with business objectives, gathercontinuous feedback on project performance, and quickly obtain peersupport, and many other aspects of performing his or her role, all byintegrating the various software tools used by person 102. Examples ofthis use of the tracker of the illustrative embodiments are describedfurther below. Likewise, the tracker of the illustrative embodiments cansimilarly assist each person of person 104, person 106, and person 108to accomplish their roles within the organization, and thereby moreefficiently or more quickly achieve the goals of the organization.

FIG. 2 is a block diagram illustrating a resource tracking system, inaccordance with an illustrative embodiment. Resource tracking system 200is implemented on a server computer, such as computing system 1600 ofFIG. 16 or data processing system 1800 of FIG. 18. Alternatively,resource tracking system 200 may be implemented as a network of multiplecomputers. Optionally, resource tracking system 200 may be implementedon a single client computer.

In any case, resource tracking system 200 preferably receives input frommultiple applications or tools, though possibly resource tracking system200 could receive information only from a single application or tool.Resource tracking system 200 may directly link organizational activityto organizational goals to show organizational alignment and progress.Resource tracking system 200 may show organizational trends and changesin organizational velocity, as described further below. Thisfunctionality may be achieved by leveraging tagging and text mining toidentify common terms and acronyms within the organization, and trackingtheir overall usage over time. Resource tracking system 200 may also beused for integration with worker feedback and performance management.

In the illustrative embodiment shown in FIG. 2, resource tracking system200 receives input from four applications or tools, includingapplication A 202, application B 204, application C 206, and applicationD 208. Resource tracking system 200 receives the output from eachapplication, or actively retrieves desired information from eachapplication, and then collates the aggregate information into a formwhich is useful for tracking aspects of an organizational, team, orpersonal goal. Resource tracking system 200 then may present thisinformation to the user, or possibly generate a report for the user.This information could be presented in many different ways, as describedhere and further below.

For example, an output of resource tracking system 200 may be to displayon a tangible display device recent activities performed by the user ofeach of the applications. Thus, for example, recent activities display210 may show that application A 202 may show that a particularpercentage of completion towards a project has been met, and how thatpercentage corresponds to the prior week's performance. In anotherexample, recent activities display 210 may show scheduling informationfrom application B 204. In still another example, recent activitiesdisplay 210 may show social networking information from application C206. In yet another example, recent activities display 210 may showdifferent social networking or scheduling information from a differentprogram, namely application D 208.

Resource tracking system 200 may display this type of information indifferent manners. For example, the graphical user interface may showcircular chart 212 indicating a proportional use of each of applicationA 202, application B 204, application C 206, and application D 208. Atotal number of activities may be displayed in the center of circularchart 212.

The information obtained and collated and modified by resource trackingsystem 200 may be presented in a variety of different ways. Thus, theillustrative embodiments are not necessarily limited to the techniquesshown in FIG. 2. For example, alternative methods for collating anddisplaying information are shown in FIG. 3 through FIG. 10.

FIG. 3 is a block diagram illustrating a view of a resource trackingsystem, in accordance with an illustrative embodiment. Graphical userinterface 300 may display a result of the operation of a resourcetracking system, such as resource tracking system 200 of FIG. 2. Thus,FIG. 3 and FIG. 2 share common reference numerals and have similardescriptions. Graphical user interface 300 may be implemented on atangible display based on output from hardware or software stored on anon-transitory computer readable storage medium and executed by aprocessor.

FIG. 3 shows a variation of a graphical user interface for an output ofresource tracking system 200 of FIG. 2. Thus, for example, recentactivities display 210 is shown, along with circular graph 302. Circulargraph 302 may be colored, hashed, or otherwise highlighted in eachsection to identify an application visually. Thus, for example, section304 could be colored red or hashed or otherwise highlighted, with thehighlighting visually informing the user that application A is used inthe most number of activities among a total of 60 activities.

Different areas of graphical user interface 300 may be selectable by auser in order to display different information. For example, what isdisplayed may be organized by an individual, such as “me” button 306.Information for all of the applications used by a team may be selectedby selecting “team” button 308. Information for the entire organizationmay be selected by selecting “organization” button 310. In each case,proportionate use of each application may be displayed in circular graph302 and/or recent activities display 210.

Other information may also be displayed. For example, graphical userinterface 300 may display the number of goals being tracked in area 312.Graphical user interface 300 may display the number of activitiesperformed over time in the form of a graph, as shown in area 314.Another area, area 316, may show a name or other identifier of aparticular project taken from of a list of projects involved in anoverall project, with the information relating to the particular projectshown elsewhere on graphical user interface 300.

Other user input areas or information display areas may be present ongraphical user interface 300. For example, a search term input area 318may be present to allow a user to drill down into specific information.Other areas may be selectable on graphical user interface 300 to accessother functionalities.

FIG. 4 is a block diagram illustrating a view of a resource trackingsystem, in accordance with an illustrative embodiment. Graphical userinterface 400 may display a result of the operation of a resourcetracking system, such as resource tracking system 200 of FIG. 2. Thus,FIG. 4 and FIG. 2 share common reference numerals and have similardescriptions. Graphical user interface 400 may be a variation ofgraphical user interface 300 of FIG. 3. Graphical user interface 400 maybe implemented on a tangible display based on output from hardware orsoftware stored on a non-transitory computer readable storage medium andexecuted by a processor.

Graphical user interface 400 shows additional details and functionalityrelative to graphical user interface 300 of FIG. 3. Like graphical userinterface 300 of FIG. 3, graphical user interface 400 shows circulargraph 402 which shows proportional use of five programs or tools, whichnow include application E 404. The center of circular graph 402 may showthe number of activities related to the group and the goal selected.This selection may be made by selecting any one of “me” button 306,“team” button 308, or “organization” button 310.

Circular graph 402 may be designed such that goals are displayed fromlargest to smallest by number of activities in a clockwise manner, witha starting point of twelve o'clock. Colors, hashing, or otherhighlighting may remain consistent such that the same color orhighlighting indicates the largest activity. Alternatively, colors mayindicate which program or activity type is displayed.

Additional functionality is provided in navigation bar 408, such as a“home” button to return a user to a home page, a dashboard button tochange information shown in graphical user interface 400, and otherbuttons as shown to access other functionalities. In addition, goals maybe shown in area 406 of graphical user interface 400. Arrows 410 may beprovided to cycle through or find additional goals. Clicking on one ofthe goals will show the statistical information and recent activities,thereby changing circular graph 402 and recent activities display 210.Additionally, the current user may be displayed in area 412, adesignation which may be changed by selection of area 414.

Other areas may show other functionalities or information, such as mailbutton 416, which allows a user to view mail collected by one or more ofthe applications (application A 202, application B 204, application C206, application D 208, or application E 404). In another example,arrows 418 may be used to scroll through recent activities. Thedisplayed areas may be selectable in order to bring up information aboutthem or to call other functionalities. Alternatively, the activities maybe static or not selectable in order to prevent modifying what is shownin recent activities display 210.

In addition, graphical user interface 400 also includes one or morepop-up displays when a user moves a cursor over a section of circulargraph 402, such as pop-up display 420. Such a pop-up display may displayadditional information, such as the number activities accounted for bythe application represented by section 304.

As noted above, circular graph 402, which may be characterized as a piechart, may show either activities or applications in use, or both. Inthe illustrative embodiment shown in FIG. 4, circular graph 402 may showthe top five activities relating to the currently selected goal.Clicking a section or running a cursor over a section may show activityname and count. The color of other sections may become dull if a currentactivity type is selected. The sum of each activity may equal the totalnumber of activities displayed in the center. In other illustrativeembodiments, the number of applications used in the activities may bedisplayed and relative application use shown in circular graph 402.Thus, the illustrative embodiments are not necessarily limited by thespecific example shown in FIG. 4.

FIG. 5 is a block diagram illustrating a view of a resource trackingsystem, in accordance with an illustrative embodiment. Graphical userinterface 500 may display a result of the operation of a resourcetracking system, such as resource tracking system 200 of FIG. 2. Thus,FIG. 5 and FIG. 2 share common reference numerals and have similardescriptions. FIG. 5 also shares common reference numerals with similardescriptions within FIG. 4. Graphical user interface 500 may be avariation of graphical user interface 300 of FIG. 3 or graphical userinterface 400 of FIG. 4. Graphical user interface 500 may be implementedon a tangible display based on output from hardware or software storedon a non-transitory computer readable storage medium and executed by aprocessor.

Graphical user interface 500 shows an effect of selecting “team” button308, relative to graphical user interface 400 shown in FIG. 4. In thiscase, area 502 now shows members of the team. The icon representing eachperson may be selected for information regarding that individual'sactivities and performance. In an illustrative embodiment, “all” icon504 may be selected such that a manager can view a combined view of theactivities for the team they manage. The number of activities ingraphical user interface 500 shows this combined number. Circular graph402 may be updated as a result of selecting one of the individuals(showing activities for that person) or the group (showing activitiesfor the team as a whole). The updated circular graph may displayactivities or applications used accordingly.

In a specific illustrative embodiment, recent activities display 210need not be updated when a user clicks on different groups or goals.Alternatively, updates or changes may be indicated in recent activitiesdisplay 210 when a user clicks on different individuals in area 502, or“all” icon 504.

FIG. 6 is a block diagram illustrating a view of a resource trackingsystem, in accordance with an illustrative embodiment. Graphical userinterface 600 may display a result of the operation of a resourcetracking system, such as resource tracking system 200 of FIG. 2. Thus,FIG. 6 and FIG. 2 share common reference numerals and have similardescriptions. FIG. 6 also shares common reference numerals with similardescriptions within FIG. 4. Graphical user interface 600 may be avariation of graphical user interface 300 of FIG. 3, graphical userinterface 400 of FIG. 4, or graphical user interface 500 of FIG. 5.Graphical user interface 600 may be implemented on a tangible displaybased on output from hardware or software stored on a non-transitorycomputer readable storage medium and executed by a processor.

Graphical user interface 600 shows an effect of selecting “organization”button 310, relative to graphical user interface 400 shown in FIG. 4 orgraphical user interface 500 shown in FIG. 5. In this case, area 602 nowshows a button which may be selected to indicate the user's particularcontributions to the team. Circular graph 402 may be updated as a resultof selecting “organization” button 310. The updated circular graph maydisplay activities performed by the entire organization as a whole orapplications used by the entire organization as a whole. In graphicaluser interface 600, section 604 is selected and pop-up window 606indicates the number of activities performed in that section. In thisparticular example, a number of promotions are shown, which are part ofthe total number of activities shown.

The illustrative embodiments shown in FIG. 4 through FIG. 6 may bevaried. For example, the location of various icons and areas may bevaried. Thus, these specific examples do not necessarily limit theclaimed illustrative embodiments.

FIG. 7 is a graph illustrating an output of a resource tracking system,in accordance with an illustrative embodiment. Graph 700 may be analternative to the graphical user interfaces shown in FIG. 2 throughFIG. 6. Graph 700 may be displayed on a tangible display as a result ofthe output of a tracking system, as described above.

Graph 700 shows a graph of activity count 702 versus goal lifecycle 704.Each line shown in the graph shows a count of a type of activity overtime. The various types of dashes show the various types of activitiesbeing tracked. In this manner, a user can easily see increasing ordecreasing trends in activities over time for an individual person, fora team, for an entire organization, or perhaps for a set of selectedindividuals or for the activities of other software programs. Stateddifferently, graph 700 shows activity trends towards a selected goal andallows a user to identify where most time is spent throughout a lifecycle of a goal for an individual, a team, an organization, or aselected number of individuals or the activities of other softwareprograms.

In area 706 of the graphical user interface the number of activities andthe graph of total activities over time may be displayed. A totalpercentage increase or decrease in activities over a selected timeperiod may also be displayed in area 706.

FIG. 8 is a relationship diagram illustrating an output of a resourcetracking system, in accordance with an illustrative embodiment.Relationship graph 800 may be an alternative to the graphical userinterfaces shown in FIG. 2 through FIG. 7. Relationship graph 800 may bedisplayed on a tangible display as a result of the output of a trackingsystem, as described above.

Relationship graph 800 shows that the tracker of the illustrativeembodiments may bring together true visibility on cross-departmentalwork activities and common engagements. Relationship graph 800 alsoshows that the tracker of the illustrative embodiments may identify maincollaborators across teams to identify strong connections betweenindividuals and to identify work patterns.

The tracker of the illustrative embodiments allows a user to identifyspecific relationships among different applications and correspondingindividuals, teams, or organizations that use those differentapplications. Use of an application may be considered an activity.

FIG. 8 shows the four applications described above, includingapplication A 202, application B 204, application C 206, and applicationD 208. In addition, five users are shown. Three users are more commonlyassociated with application A 202, including user A 802, user B 804, anduser C 806. Two users are more commonly associated with application D208, including user D 808 and user E 810. Lines between an applicationand a user show which users are using which applications, such as line812 or line 814. Lines between users show relationships among users, forexample where one user is consulting with another via one or more of theapplications shown, or, for example, where a user uses the result of anactivity of another user. Examples of lines between users include line816, line 818, and line 820, though other lines are shown. The linesbetween users may be colored, thickened, dashed, or otherwise marked toconvey additional information. For example, line 816 is thickened andmarked with the number five hundred to show a large number of connectedactivities between user C 806 and user E 810. In contrast, line 820 isthin and is marked with the number five to show a relatively smallnumber of connected activities between User A 802 and User C 806.

Thus, in the specific example shown in FIG. 8, a user desires to seerelationships among application A 202 and application D 208 and theusers of those applications. Thus, to prevent relationship graph 800from becoming cluttered, application C 206 and application B 204 arefaded out and their connections and users are not displayed. Thenseveral users of application A 202 are shown and several users ofapplication D 208 are shown, along with the activity connections amongthose users. As described above, indicators such as line thickness, linecolor, or other information may be displayed to convey additionalinformation. The additional information may be activity type, number ofactivities, a strength of the relationship among users, and possiblyother information.

FIG. 9 is a status report output by a resource tracking system, inaccordance with an illustrative embodiment. Graphical user interface 900shows that the tracker of the illustrative embodiments may cause adisplay of a summary of activities for an individual. Thus, graphicaluser interface 900 shows an alternative to the various graphical userinterfaces and graphs shown in FIG. 2 through FIG. 8.

In the example of FIG. 9, the tracker of the illustrative embodimentshas put together and caused display of a summary of the activities andrelationships of an individual user, user X 902. The name, picture, andvarious information about user X 902 may be displayed in area 904, suchas the job title and team or organization assignment. Keyaccomplishments, goals, or goals under consideration for assignment touser X 902 may be displayed in area 906. The number and types ofactivities performed by user X 902 may be shown in area 908. Theinformation in area 908 may be color coded for easier recognition. Thetypes of activities may be presented as a horizontal bar graph toquickly show the proportion of time used relative to other activities orperhaps the proportion of a given activity to the total number ofactivities.

Other information may be displayed. For example, in area 910 a timelinemay be shown that also displays the time interval for which thereporting data is collated. In this particular example, the reportingperiod is the month of August, with other the other twelve months of theyear shown faded to indicate that the information for these months isnot currently displayed. The time interval could be changed to years,weeks, days, or even hours. In some cases, another menu may be providedso that the user may select the desired time interval for reporting.

In addition, graphical user interface 900 may include informationregarding with which other persons User X 902 works. For example, area912 may show the top three individuals with whom User X 902 works. Moreor fewer users may be displayed. Teams or organizations or customerscould be displayed.

Thus, the illustrative embodiment of FIG. 9 is a specific example onlyand may be varied. For example, instead of showing the activities of asingle person, information about a team or the whole organization may bedisplayed. Thus, for example, if a team is displayed, then totalactivities of the team and the three most worked with outside teams maybe displayed. The number of “most worked with” people may be varied. Thetime period may be varied from “by month” to “by year” or “by week” oreven “by day” or “by hour”. More or less information may be displayed.The layout of the information shown in FIG. 9 may be varied. Thus, theillustrative embodiments are not necessarily limited to the exampleshown in FIG. 9.

FIG. 10 is a bar graph report output by a resource tracking system, inaccordance with an illustrative embodiment. Thus, graphical userinterface 1000 shows an alternative to the various graphical userinterfaces and graphs shown in FIG. 2 through FIG. 9. Graphical userinterface 1000 shows that the tracker of the illustrative embodimentsmay cause a display of a summary of activities for an individual, team,or organization by activity count and by time interval. This summary maytake the form of bar graph 1002.

Bar graph 1002 may display the average activity account on amonth-by-month basis. Different time periods may be used. Bar graph 1002also shows different sections within individual bars. Each bar has atotal equal to every other bar, because the top of bar graph 1002represents one hundred percent of activities for the given month.Different highlighted sections within an individual month shows arelative percentage of a given type of activity is performed for thegiven month. The coloring, hashing, or other highlighting indicateswhich activity is being indicated.

Thus, bar graph 1002 aggregates and presents patterns in work towardssimilar goals. Bar graph 1002 also shows product initiative goal trends.

The illustrative embodiment of FIG. 10 may be further varied. More ordifferent information may be presented. The time periods may be varied,and more or fewer activity types may be present. Different types ofhighlighting are possible. The layout or look and feel of bar graph 1002may change. Thus, the illustrative embodiments are not necessarilylimited to the specific examples shown in FIG. 10.

Attention is now turned to examples of how to implement the tracker ofthe illustrative embodiments. These illustrative embodiments areexemplary and may be varied. FIG. 11 shows the overall architecture,FIG. 12 shows the details of the tracking system, and FIG. 13 is anexemplary application programming interface (API).

FIG. 11 is a block diagram of an architecture of a resource trackingsystem, in accordance with an illustrative embodiment. Tracking systemarchitecture 1100 may be implemented using hardware, such as computingsystem 1600 of FIG. 16 or data processing system 1800 of FIG. 18,possibly in the context of a network or cloud operating environment suchas cloud computing environment 1700 of FIG. 17. Tracking systemarchitecture 1100 may also be implemented in the form of software orprogram code stored on a non-transitory computer readable storage mediumwhich, when executed, improves the efficiency of the overall network orthe server by more efficiently gathering and presenting desired data.

Tracking system architecture 1100 includes client layer 1102, serviceslayer 1104, and data layer 1106. Each of client layer 1102, serviceslayer 1104, and data layer 1106 may be implemented as described abovefor tracking system architecture 1100. Each layer communicates only withthe immediately preceding and immediately succeeding layer, although insome illustrative embodiments a client in client layer 1102 maycommunicate directly with servers or non-transitory computer readablestorage media in data layer 1106.

Client layer 1102 includes one or more client systems. A client systemmay be a computer, an application, or a third party request through someother computer. Thus, a client system may be a requesting computer orprogram communicating through a cloud environment. The various graphicaluser interfaces described with respect to FIG. 2 through FIG. 10 may beshown on tangible display devices of the client's systems in clientlayer 1102. Client layer 1102 communicates through one or morecommunication channels with services layer 1104.

Services layer 1104 provides for common encapsulation, common security,and common error handling with respect to requests and data receptionfrom client layer 1102. Services layer 1104 may include applicationlayer 1108 and data services layer 1110. Details regarding serviceslayer 1104, application layer 1108, and data services layer 1110 aredescribed with respect to FIG. 12. However, in general, applicationlayer 1108 handles requests for applications and data services layer1110 handles application programming interfaces for building requests todata layer 1106.

Data layer 1106, in turn, includes one or more databases, such asdatabase 1112. One or more of these databases may be stored on anindividual non-transitory computer readable storage medium. Thesedatabases may contain the underlying information which is consumed andthen returned to the clients in client layer 1102 in order to presentthe graphical user interfaces shown in FIG. 2 through FIG. 10. Thus,tracking system architecture 1100 is a service oriented architecturewhich is highly scalable and which provides multi-device support.

FIG. 12 is a block diagram illustrating details of the resource trackingsystem architecture shown in FIG. 11, in accordance with an illustrativeembodiment. Specifically, services layer 1200 is an example of serviceslayer 1104 of FIG. 11. Reference numerals common to FIG. 2 have commondescriptions.

In an illustrative embodiment, data requests (either from a push or apull) are transmitted back and forth from applications, such asapplication A 202, application B 204, application C 206, and applicationD 208. These requests are then received by one or more applicationprogramming interfaces (APIs), such as application programming interface1202 within data services 1204, to build a request of database 1206(which may be in data layer 1106 of FIG. 11). These applicationprogramming interfaces may be built using one or more languages, such aslanguage X 1208, language Y 1210, or language Z 1212, depending on theauthor of the corresponding application.

Thus, the illustrative embodiments may use information taken from thirdparty applications of a variety of proprietary formats and still presenta coherent set of information to the user, as shown in FIG. 2 throughFIG. 10. Additionally, the architecture is scalable as more or differentprograms may be provided to the tracking system, which then,accordingly, updates subsequent reports shown to the user.

In a specific illustrative embodiment, the tracking system of theillustrative embodiments may be backed by a REST-JSON API, written inRuby on Rails version 4. Other languages or other APIs may be used inother illustrative embodiments. The API is then is used to import datafrom the organization which is responsible for the tracker of theillustrative embodiments (and any third party APIs) and to serve thefront end of the tracking system. In a specific illustrative embodiment,the development environment may be the RubyMine integrated developmentenvironment using the railsAPI gem. However, other developmentenvironments are possible.

Any given API used with the tracking system of the illustrativeembodiments may include three models: work item, tag, and person. Eachmodel has an endpoint. In an illustrative embodiment there is amany-to-many relationship between these models. The models inherit fromActive Record the object relational mapping built into Rails, whichcomes preconfigured with sqlite3 for development. The controllers maysupport five actions: index, show, create, update, and destroy. Theresources are automatically routed, including nested resources.

FIG. 13 is an example of an application programming interface usable ina resource tracking system, in accordance with an illustrativeembodiment. Application programming interface 1300 may be an example ofone or more of the application programming interfaces used to implementthe tracker of the illustrative embodiments, as described with respectto FIG. 12. The pseudo-code shown in FIG. 13, which implementsapplication programming interface 1300, is exemplary only and may bevaried.

As described above, each application programming interface includesthree models: work item, tag, and person. The work item model is shownin lines three through ten in FIG. 13, which is code to describe whichapplication is being accessed or used and what information is to betaken from the underlying database.

The tag model is shown in lines eleven through fifteen in FIG. 13.Although only one tag is shown, more or fewer tags may be present. Tagsare basic words or phrases that are commonly used as reference pointswhen describing an element of value or clarification on an associatedobject. Tags can be linked to meta-data elements within a platform.While tags can theoretically be linked to any data model objects, thefollowing objects may be supported in a particular example: globalperson, position, organization unit, job family, capability and asset.Tags may be used to analyze trends across different applications andplatforms, or to otherwise assist in collating desired information.

The person model is shown in lines 16 through 22 of FIG. 13. The personmodel provides one or more forms of identification of the personinvolved in the requested data. More or fewer people could be present.More or fewer forms of identification may be present. In theillustrative embodiment shown in FIG. 13, a single person is describedby three identifiers: first name, last name, and email address. Theapplication programming interface then uses this person's information aspart of determining what information to retrieve and then present to theuser in a graphical user interface, such as shown in FIG. 2 through FIG.10.

FIG. 14 is a block diagram of a resource tracking system, in accordancewith an illustrative embodiment. System 1400 is implemented as a dataprocessing system, such as computing system 1600 of FIG. 16 or dataprocessing system 1800 of FIG. 18. System 1400 may implement a variationof the techniques described with respect to FIG. 1 through FIG. 13.System 1400 may be described as a computer; however, in the context ofFIG. 14 the term “system”, including system 1400, may refer to anyprocessor, application specific integrated circuit, application specificprocessor, or any other tangible physical hardware operating inconjunction with a tangible physical display, tangible physical inputdevices, and a non-transitory computer readable storage medium.

Thus, system 1400 may include computer network 1402. Computer network1402 may include server computer 1404 having server processor 1406 andserver non-transitory computer readable storage medium 1408. Computernetwork 1402 may be part of, or constitute, a cloud environment, such ascloud computing environment 1700 of FIG. 17.

Computer network 1402 may also include first computer 1410. Firstcomputer 1410 may be in communication with the server computer and maybe operable by a first user. First computer 1410 has first processor1412 and first non-transitory computer readable storage medium 1414storing first program code 1416. First program code 1416, when executedby the first processor, implements a first software tool having a firstfunction and a second software tool having a second function.

Computer network 1402 may also include second computer 1418 incommunication with the server computer operable by a second user. Secondcomputer 1418 has second processor 1420 and second non-transitorycomputer readable storage medium 1422 storing second program code 1424.Second program code 1424, when executed by the second processor,implements the first software tool having the first function and thesecond software tool having the second function.

Server non-transitory computer readable storage medium 1408 stores thirdprogram code 1426. Third program code 1426, when executed by serverprocessor 1406, is configured to perform a number of functions. Thefunctions include gathering first data regarding use of the firstsoftware tool and gathering second data regarding use of the secondsoftware tool. The functions also include, based on the first data andthe second data, linking activities of the first user and the seconduser to a performance goal for any one of the first user, the seconduser, a team including at least the first user or the second user, or anorganization to which the first user and the second user belong. Inexecuting third program code 1426, communications link 1428 or 1430between the server computer and the first computer 1410 or secondcomputer 1418 is improved.

The illustrative embodiments described with respect to FIG. 14 may bevaried. For example, in an illustrative embodiment, third program code1426 may be further configured to cause a physical display device topresent proportional use information comprising a proportionalcomparison of: use of the first software tool on both the first computerand the second computer relative to use of the second software tool onboth the first computer and the second computer.

In another illustrative embodiment, third program code 1426 may befurther configured to: based on the first data and the second data,calculate a first amount of work the first user contributed to theperformance goal and calculate a second amount of work the second usercontributed to the performance goal. In another illustrative embodiment,third program code 1426 may be further configured to, based on the firstdata and the second data, calculate a performance of the first userrelative to the second user.

In another illustrative embodiment, the first user has a first assignedgoal. In this case, third program code 1426 may be further configured totrack a total number of activities by the first user for the firstassigned goal.

In still another illustrative embodiment, third program code 1426 may befurther configured to calculate, for the first user, a proportional useof the first software tool and the second software tool. In this case,third program code 1426 may be further configured to display which ofthe first user and the second user performs a most number of particularactivities towards the performance goal. In this manner, it may bedetermined which user should be consulted regarding a question regardingthe particular activities.

In yet another illustrative embodiment, the performance goal is for theorganization. The organization has a plurality of departments and thefirst user is in a first department and the second user is in a seconddepartment. In this case, third program code 1426 may be furtherconfigured to, based on the first data and the second data, displaycross-departmental collaboration between the first user and the seconduser.

In still another illustrative embodiment, any of the examples describedabove with respect to FIG. 14 may be described with respect to servercomputer 1404 itself. Thus, the claimed illustrative embodiments are notnecessarily limited to computer network 1402, but also may becharacterized as server computer 1404 configured to receive informationfrom first computer 1410 and second computer 1418 as described above.

Other variations are possible. Thus, the claimed illustrativeembodiments are not necessarily limited by the examples described withrespect to FIG. 14.

FIG. 15 is a flowchart of a method for performing resource tracking, inaccordance with an illustrative embodiment. Method 1500 is implementedusing a data processing system, such computing system 1600 of FIG. 16 ordata processing system 1800 of FIG. 18. Method 1500 may be implementedin a cloud environment, such as cloud computing environment 1700 of FIG.17. Method 1500 may be a variation of the techniques described withrespect to FIG. 1 through FIG. 14. The various operations described withrespect to method 1500 are described as being performed by a computer;however, in the context of FIG. 15 the term “computer” may refer to anyprocessor, application specific integrated circuit, application specificprocessor, or any other tangible physical hardware operating inconjunction with a tangible physical display, tangible physical inputdevices, and a non-transitory computer readable storage medium.

Method 1500 may be implemented in a server computer having a serverprocessor and a server non-transitory computer readable storage medium.The server computer may be in communication with a first computer,operable by a first user. The first computer may have a first processorand a first non-transitory computer readable storage medium storingfirst program code. The first program code, when executed by the firstprocessor, implements a first software tool having a first function anda second software tool having a second function. The server computer maybe in communication with a second computer, operable by a second user.The second computer may have a second processor and a secondnon-transitory computer readable storage medium storing second programcode. The second program code, when executed by the second processor,implements the first software tool having the first function and thesecond software tool having the second function. The servernon-transitory computer readable storage medium stores third programcode. The third program code, when executed by the server processor,implements method 1500.

Method 1500 may include gathering first data regarding use of the firstsoftware tool (operation 1502). Method 1500 may also include gatheringsecond data regarding use of the second software tool (operation 1504).

Method 1500 may also include improving, using the server computer, acommunications link between the server computer and the first computeror the second computer by linking, based on the first data and thesecond data, activities of the first user and the second user to aperformance goal for any one of the first user, the second user, a teamincluding at least the first user or the second user, or an organizationto which the first user and the second user belong (operation 1506). Theprocess may terminate thereafter.

Method 1500 may be further varied. For example, method 1500 may alsoinclude altering a physical display device by displaying proportionaluse information comprising a proportional comparison of: use of thefirst software tool on both the first computer and the second computerrelative to use of the second software tool on both the first computerand the second computer.

In another example, method 1500 may also include calculating, based onthe first data and the second data, a first amount of work the firstuser contributed to the performance goal and calculating a second amountof work the second user contributed to the performance goal, andaltering a physical display device by displaying the first amount ofwork and the second amount of work.

In another example, method 1500 may also include calculating, for thefirst user, a proportional use of the first software tool and the secondsoftware tool, and altering a physical display device by displayingwhich of the first user and the second user performs a most number ofparticular activities towards the performance goal.

Thus, the illustrative embodiments described with respect to FIG. 15 areexemplary only and do not necessarily limit the claimed illustrativeembodiments. Further variations of method 1500 are possible, such asother techniques described with respect to FIG. 1 through FIG. 14.

FIG. 16 is a block diagram of a data processing system, in accordancewith an illustrative embodiment. FIG. 16 is an illustrative architectureof a computing system 1600 implemented as embodiments of the presentillustrative embodiment. The computing system 1600 is only one exampleof a suitable computing system and is not intended to suggest anylimitation as to the scope of use or functionality of the illustrativeembodiment. Also, computing system 1600 should not be interpreted ashaving any dependency or requirement relating to any one or combinationof components illustrated in computing system 1600.

As shown in FIG. 16, computing system 1600 includes a computing device1605. The computing device 1605 can be resident on a networkinfrastructure such as within a cloud environment, or may be a separateindependent computing device (e.g., a computing device of a third partyservice provider). The computing device 1605 may include a bus 1610, aprocessor 1615, a storage device in storage devices 1620, a systemmemory (hardware device) 1625, one or more input devices 1630, one ormore output devices 1635, and a communication interface 1640.

The bus 1610 permits communication among the components of computingdevice 1605. For example, bus 1610 may be any of several types of busstructures including a memory bus or memory controller, a peripheralbus, or a local bus using any of a variety of bus architectures toprovide one or more wired or wireless communications links or paths fortransferring data and/or power to, from, or between various othercomponents of computing device 1605.

The processor 1615 may be one or more conventional processors ormicroprocessors that include any processing circuitry operative tointerpret and execute computer readable program instructions, such asprogram instructions for controlling the operation and performance ofone or more of the various other components of computing device 1605. Inembodiments, processor 1615 interprets and executes the processes,steps, functions, and/or operations of the present illustrativeembodiment, which may be operatively implemented by the computerreadable program instructions. For example, the processor 1615implements the processes as described throughout including the examplesherein. In embodiments, the processor 1615 integrates multiple systemsand applications together, and determines trends by analyzing tagsand/or keywords of one or more users over the multiple integratedsystems and applications.

In other embodiments, processor 1615 may receive input signals from oneor more input devices 1630 and/or drive output signals through one ormore output devices 1635. The input devices 1630 may be, for example, akeyboard or touch sensitive user interface (UI) as further describedbelow. The output devices 1635 can be, for example, any display device,printer, etc., as further described below.

The storage device in storage devices 1620 may includeremovable/non-removable, volatile/non-volatile computer readable media,such as, but not limited to, non-transitory media such as magneticand/or optical recording media and their corresponding drives. Thedrives and their associated computer readable media provide for storageof computer readable program instructions, data structures, programmodules and other data for operation of computing device 1605 inaccordance with the different aspects of the present illustrativeembodiment. In other embodiments, storage device in storage devices 1620may store operating system 1645, application programs 1650, and programdata 1655 in accordance with aspects of the present illustrativeembodiment.

The system memory 1625 may include one or more storage mediums,including for example, non-transitory media such as flash memory,permanent memory such as read-only memory (“ROM”), semi-permanent memorysuch as random access memory (“RAM”), any other suitable type of storagecomponent, or any combination thereof. In some embodiments, aninput/output system 1660 (BIOS) including the basic routines that helpto transfer information between the various other components ofcomputing device 1605, such as during start-up, may be stored in theROM. Additionally, data and/or program modules 1665, such as at least aportion of operating system 1645, application programs 1650, and/orprogram data 1655, that are accessible to and/or presently beingoperated on by processor 1615 may be contained in the RAM.

The one or more input devices 1630 may include one or more mechanismsthat permit an operator to input information to computing device 1605,such as, but not limited to, a touch pad, dial, click wheel, scrollwheel, touch screen, one or more buttons (e.g., a keyboard), mouse, gamecontroller, track ball, microphone, camera, proximity sensor, lightdetector, motion sensors, biometric sensor, and combinations thereof.The one or more output devices 1635 may include one or more mechanismsthat output information to an operator, such as, but not limited to,audio speakers, headphones, audio line-outs, visual displays, antennas,infrared ports, tactile feedback, printers, or combinations thereof.

The communication interface 1640 may include any transceiver-likemechanism (e.g., a network interface, a network adapter, a modem, orcombinations thereof) that enables computing device 1605 to communicatewith remote devices or systems, such as a mobile device or othercomputing devices such as, for example, a server in a networkedenvironment, e.g., cloud environment. For example, computing device 1605may be connected to remote devices or systems via one or more local areanetworks (LAN) and/or one or more wide area networks (WAN) usingcommunication interface 1640.

As discussed herein, computing system 1600 may be configured toimplement the processes as described throughout including thefunctionality and examples herein, as shown in the figures attachedherein including the underlying functionality of the screen displays asdescribed herein, in addition to the process flows and the illustrativeexamples. That is, amongst many different aspects described herein, thecomputing system 1600 is an integrated resource tracking system and,more particularly, provides processes and systems to integrate multiplesystems and applications together to determine trends by analyzing tagsand/or keywords of multiple users over the multiple integrated systemsand applications.

In particular, computing device 1605 may perform tasks (e.g., process,steps, methods and/or functionality) in response to processor 1615executing program instructions contained in a computer readable medium,such as system memory 1625. The program instructions may be read intosystem memory 1625 from another computer readable medium, such as a datastorage device in data storage devices 1620, or from another device viathe communication interface 1640 or server within or outside of a cloudenvironment. In embodiments, an operator may interact with computingdevice 1605 via the one or more input devices 1630 and/or the one ormore output devices 1635 to facilitate performance of the tasks and/orrealize the end results of such tasks in accordance with aspects of thepresent illustrative embodiment. In additional or alternativeembodiments, hardwired circuitry may be used in place of or incombination with the program instructions to implement the tasks, e.g.,steps, methods and/or functionality, consistent with the differentaspects of the present illustrative embodiment. Thus, the steps,methods, and/or functionality disclosed herein can be implemented in anycombination of hardware circuitry and software.

FIG. 17 is a block diagram of a cloud environment, in accordance with anillustrative embodiment. FIG. 17 shows an exemplary cloud computingenvironment 1700. Cloud computing is a computing model that enablesconvenient, on-demand network access to a shared pool of configurablecomputing resources, e.g., networks, servers, processing, storage,applications, and services, that can be provisioned and releasedrapidly, dynamically, and with minimal management efforts and/orinteraction with the service provider. In embodiments, one or moreaspects, functions, and/or processes described herein may be performedand/or provided via cloud computing environment 1700.

As depicted in FIG. 17, cloud computing environment 1700 includes cloudresources 1705 that are made available to client devices 1710 via anetwork 1715, such as the Internet. Cloud resources 1705 can include avariety of hardware and/or software computing resources, such asservers, databases, storage, networks, applications, and platforms. Inembodiments, the systems and processes herein can be integrated into thecloud resources in order to provide tracking and trending capabilitiesas described and shown herein.

Cloud resources 1705 may be on a single network or a distributednetwork. Cloud resources 1705 may be distributed across multiple cloudcomputing systems and/or individual network enabled computing devices.Client devices 1710 may comprise any suitable type of network-enabledcomputing device, such as servers, desktop computers, laptop computers,handheld computers (e.g., smartphones, tablet computers), set top boxes,and network enabled hard drives. Cloud resources 1705 are typicallyprovided and maintained by a service provider so that a client does notneed to maintain resources on a local implementation of client device1710. In embodiments, cloud resources 1705 may include one or morecomputing system 1600 of FIG. 16 that is specifically adapted to performone or more of the functions and/or processes described herein.

Cloud computing environment 1700 may be configured such that cloudresources 1705 provide computing resources to client devices 1710through a variety of service models, such as Software as a Service(SaaS), Platforms as a service (PaaS), Infrastructure as a Service(IaaS), and/or any other cloud service models. Cloud resources 1705 maybe configured, in some cases, to provide multiple service models to aclient device 1710. For example, cloud resources 1705 can provide bothSaaS and IaaS to a client device 1710. Cloud resources 1705 may beconfigured, in some cases, to provide different service models todifferent types of client devices 1710. For example, cloud resources1705 can provide SaaS to a first type of client device 1710 and PaaS toa second type of client device 1710.

Cloud computing environment 1700 may be configured such that cloudresources 1705 provide computing resources to client devices 1710through a variety of deployment models, such as public, private,community, hybrid, and/or any other cloud deployment model. Cloudresources 1705 may be configured, in some cases, to support multipledeployment models. For example, cloud resources 1705 can provide one setof computing resources through a public deployment model and another setof computing resources through a private deployment model.

One or more of cloud resources 1705 may be conceptually structured inmultiple layers. In one example, the layers include a firmware andhardware layer, a kernel layer, an infrastructure service layer, aplatform service layer, and an application service layer. The firmwareand hardware layer may be the lowest layer upon which the other layersare built, and may include generic contributing nodes (e.g., datacenters, computers, and storage devices) geographically distributedacross the Internet and may provide the physical resources forimplementing the upper layers of the cloud service provider. The kernellayer is above the firmware and hardware layer and may include anoperating system and/or virtual machine manager that host the cloudinfrastructure services. The kernel layer controls and communicates withthe underlying firmware and hardware layer through one or morehardware/firmware-level application programming interfaces (APIs). Theinfrastructure service layer is above the kernel layer and may includevirtualized resources, such as virtual machines, virtual storage (e.g.,virtual disks), virtual network appliances (e.g., firewalls), and so on.The infrastructure service layer may also include virtualized services,such as database services, networking services, file system services,web hosting services, load balancing services, message queue services,map services, e-mail services, and so on. The platform service layer isabove the infrastructure service layer and may include platforms andapplication frameworks that provide platform services, such as anenvironment for running virtual machines or a framework for developingand launching a particular type of software application. The applicationservice layer is above the platform service layer and may include asoftware application installed on one or more virtual machines ordeployed in an application framework in the platform service layer. Thesoftware application can also communicate with one or moreinfrastructure service components (e.g., firewalls, databases, webservers, etc.) in the infrastructure service layer.

In another example, one or more cloud resources in cloud resources 1705may be conceptually structured in functional abstraction layersincluding a hardware and software layer, a virtualization layer, amanagement layer, and a workloads layer. The hardware and software layermay include hardware and software components such as mainframes, RISC(reduced instruction set computer) architecture based servers, storagedevices, networks and networking components, application serversoftware, and database software. The virtualization layer may includevirtual entities such as virtual servers, virtual storage, virtualnetworks, virtual applications, and virtual clients. The managementlayer may provide functions such as resource provisioning, metering andpricing, security, user portals, service level management, and servicelevel agreement planning and fulfillment. The workloads layer mayprovide functions for which the cloud computing environment is utilized,such as mapping and navigation, software development and lifecyclemanagement, data analytics and processing, and transaction processing.

In embodiments, software and/or hardware that performs one or more ofthe aspects, functions, and/or processes described herein may beaccessed and/or utilized by a client (e.g., an enterprise or an enduser) as one or more of an SaaS, PaaS, and IaaS model in one or more ofa private, community, public, and hybrid cloud. Moreover, although thisdisclosure includes a description of cloud computing, the systems andmethods described herein are not limited to cloud computing and insteadcan be implemented on any suitable computing environment.

Cloud resources 1705 may be configured to provide a variety offunctionality that involves user interaction. Accordingly, a userinterface (UI) can be provided for communicating with cloud resources1705 and/or performing tasks associated with cloud resources 1705. TheUI can be accessed via a client device 1710 in communication with cloudresources 1705. The UI can be configured to operate in a variety ofclient modes, including a fat client mode, a thin client mode, or ahybrid client mode, depending on the storage and processing capabilitiesof cloud resources 1705 and/or client device 1710. Therefore, a UI canbe implemented as a standalone application operating at the clientdevice in some embodiments. In other embodiments, a web browser-basedportal can be used to provide the UI. Any other configuration to accesscloud resources 1705 can also be used in various implementations.

The technical solutions provided herein include the integration of manydifferent systems/applicants and the providing of an analysis oftags/keywords, etc. to determine trending information, amongst otherthings. The technical solutions are implemented in the computerinfrastructure of FIG. 16 and/or the environment of FIG. 17, and can beintegrated in many different systems described herein. The followingexamples, amongst all of the functionality and examples herein, caninclude a computer program product which includes computer readableprogram instructions stored on computer readable storage medium (ormedia) for implementing any of the combinations of processes and systemsherein. The computer readable storage medium include the one or morestorage medium as described with regard to FIG. 16, e.g., non-transitorymedia, a tangible device, etc. The method, and/or computer programproduct implementing the flows or examples provided herein can bedownloaded to respective computing/processing devices, e.g., computingsystem of FIG. 16 as already described herein, or implemented on a cloudinfrastructure as described with regard to FIG. 17. Accordingly, theprocesses associated with each flow of the present illustrativeembodiment can be implemented by special purpose hardware-based systemsthat perform the specified functions or acts or carry out combinationsof special purpose hardware and computer instructions.

Turning now to FIG. 18, an illustration of a data processing system isdepicted in accordance with an illustrative embodiment. Data processingsystem 1800 in FIG. 18 is an example of a data processing system thatmay be used to implement the illustrative embodiments, such as thosedescribed with respect to FIG. 1 through FIG. 15. In this illustrativeexample, data processing system 1800 includes communications fabric1802, which provides communications between processor unit 1804, memory1806, persistent storage 1808, communications unit 1810, input/output(I/O) unit 1812, and display 1814.

Processor unit 1804 serves to execute instructions for software that maybe loaded into memory 1806. This software may be an associative memory,content addressable memory, or software for implementing the processesdescribed elsewhere herein. Processor unit 1804 may be a number ofprocessors, a multi-processor core, or some other type of processor,depending on the particular implementation. A number, as used hereinwith reference to an item, means one or more items. Further, processorunit 1804 may be implemented using a number of heterogeneous processorsystems in which a main processor is present with secondary processorson a single chip. As another illustrative example, processor unit 1804may be a symmetric multi-processor system containing multiple processorsof the same type.

Memory 1806 and persistent storage 1808 are examples of storage devices1816. A storage device is any piece of hardware that is capable ofstoring information, such as, for example, without limitation, data,program code in functional form, and/or other suitable informationeither on a temporary basis and/or a permanent basis. Storage devices1816 may also be referred to as computer readable storage devices inthese examples. Memory 1806, in these examples, may be, for example, arandom access memory or any other suitable volatile or non-volatilestorage device. Persistent storage 1808 may take various forms,depending on the particular implementation.

For example, persistent storage 1808 may contain one or more componentsor devices. For example, persistent storage 1808 may be a hard drive, aflash memory, a rewritable optical disk, a rewritable magnetic tape, orsome combination of the above. The media used by persistent storage 1808also may be removable. For example, a removable hard drive may be usedfor persistent storage 1808.

Communications unit 1810, in these examples, provides for communicatingwith other data processing systems or devices. In these examples,communications unit 1810 is a network interface card. Communicationsunit 1810 may provide communications through the use of physical and/orwireless communications links.

Input/output (I/O) unit 1812 allows for input and output of data to andfrom other devices that may be connected to data processing system 1800.For example, input/output (I/O) unit 1812 may provide a connection foruser input through a keyboard, a mouse, and/or some other suitable inputdevice. Further, input/output (I/O) unit 1812 may send output to aprinter. Display 1814 provides a mechanism to display information to auser.

Instructions for the operating system, applications, and/or programs maybe located in storage devices 1816, which are in communication withprocessor unit 1804 through communications fabric 1802. In theseillustrative examples, the instructions are in a functional form onpersistent storage 1808. These instructions may be loaded into memory1806 for execution by processor unit 1804. The processes of thedifferent embodiments may be performed by processor unit 1804 usingcomputer implemented instructions, which may be located in a memory,such as memory 1806.

These instructions are referred to as program code, computer usableprogram code, or computer readable program code that may be read andexecuted by a processor in processor unit 1804. The program code in thedifferent embodiments may be embodied on different physical or computerreadable storage media, such as memory 1806 or persistent storage 1808.

Program code 1818 is located in a functional form on computer readablemedia 1820 that is selectively removable and may be loaded onto ortransferred to data processing system 1800 for execution by processorunit 1804. Program code 1818 and computer readable media 1820 formcomputer program product 1822 in these examples. In one example,computer readable media 1820 may be computer readable storage media 1824or computer readable signal media 1826. Computer readable storage media1824 may include, for example, an optical or magnetic disk that isinserted or placed into a drive or other device that is part ofpersistent storage 1808 for transfer onto a storage device, such as ahard drive, that is part of persistent storage 1808. Computer readablestorage media 1824 also may take the form of a persistent storage, suchas a hard drive, a thumb drive, or a flash memory, that is connected todata processing system 1800. In some instances, computer readablestorage media 1824 may not be removable from data processing system1800.

Alternatively, program code 1818 may be transferred to data processingsystem 1800 using computer readable signal media 1826. Computer readablesignal media 1826 may be, for example, a propagated data signalcontaining program code 1818. For example, computer readable signalmedia 1826 may be an electromagnetic signal, an optical signal, and/orany other suitable type of signal. These signals may be transmitted overcommunications links, such as wireless communications links, opticalfiber cable, coaxial cable, wire, and/or any other suitable type ofcommunications link. In other words, the communications link and/or theconnection may be physical or wireless in the illustrative examples.

In some illustrative embodiments, program code 1818 may be downloadedover a network to persistent storage 1808 from another device or dataprocessing system through computer readable signal media 1826 for usewithin data processing system 1800. For instance, program code stored ina computer readable storage medium in a server data processing systemmay be downloaded over a network from the server to data processingsystem 1800. The data processing system providing program code 1818 maybe a server computer, a client computer, or some other device capable ofstoring and transmitting program code 1818.

The different components illustrated for data processing system 1800 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 1800. Other components shown in FIG. 18 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of runningprogram code. As one example, the data processing system may includeorganic components integrated with inorganic components and/or may becomprised entirely of organic components excluding a human being. Forexample, a storage device may be comprised of an organic semiconductor.

In another illustrative example, processor unit 1804 may take the formof a hardware unit that has circuits that are manufactured or configuredfor a particular use. This type of hardware may perform operationswithout needing program code to be loaded into a memory from a storagedevice.

For example, when processor unit 1804 takes the form of a hardware unit,processor unit 1804 may be a circuit system, an application specificintegrated circuit (ASIC), a programmable logic device, or some othersuitable type of hardware configured to perform a number of operations.With a programmable logic device, the device is configured to performthe number of operations. The device may be reconfigured at a later timeor may be permanently configured to perform the number of operations.Examples of programmable logic devices include, for example, aprogrammable logic array, programmable array logic, a field programmablelogic array, a field programmable gate array, and other suitablehardware devices. With this type of implementation, program code 1818may be omitted because the processes for the different embodiments areimplemented in a hardware unit.

In still another illustrative example, processor unit 1804 may beimplemented using a combination of processors found in computers andhardware units. Processor unit 1804 may have a number of hardware unitsand a number of processors that are configured to run program code 1818.In this depicted example, some of the processes may be implemented inthe number of hardware units, while other processes may be implementedin the number of processors.

As another example, a storage device in data processing system 1800 isany hardware apparatus that may store data. Memory 1806, persistentstorage 1808, and computer readable media 1820 are examples of storagedevices in a tangible form.

In another example, a bus system may be used to implement communicationsfabric 1802 and may be comprised of one or more buses, such as a systembus or an input/output bus. Of course, the bus system may be implementedusing any suitable type of architecture that provides for a transfer ofdata between different components or devices attached to the bus system.Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 1806, or a cache, such asfound in an interface and memory controller hub that may be present incommunications fabric 1802.

The different illustrative embodiments can take the form of an entirelyhardware embodiment, an entirely software embodiment, or an embodimentcontaining both hardware and software elements. Some embodiments areimplemented in software, which includes, but is not limited to, formssuch as, for example, firmware, resident software, and microcode.

Furthermore, the different embodiments can take the form of a computerprogram product accessible from a computer usable or computer readablemedium providing program code for use by or in connection with acomputer or any device or system that executes instructions. For thepurposes of this disclosure, a computer usable or computer readablemedium can generally be any tangible apparatus that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, or device.

The computer usable or computer readable medium can be, for example,without limitation an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, or a propagation medium. Non-limitingexamples of a computer readable medium include a semiconductor or solidstate memory, a magnetic tape, a removable computer diskette, a randomaccess memory (RAM), a read-only memory (ROM), a rigid magnetic disk,and an optical disk. Optical disks may include compact disk-read onlymemory (CD-ROM), compact disk-read/write (CD-R/W), and DVD.

Further, a computer usable or computer readable medium may contain orstore a computer readable or computer usable program code such that whenthe computer readable or computer usable program code is executed on acomputer, the execution of this computer readable or computer usableprogram code causes the computer to transmit another computer readableor computer usable program code over a communications link. Thiscommunications link may use a medium that is, for example withoutlimitation, physical or wireless.

A data processing system suitable for storing and/or executing computerreadable or computer usable program code will include one or moreprocessors coupled directly or indirectly to memory elements through acommunications fabric, such as a system bus. The memory elements mayinclude local memory employed during actual execution of the programcode, bulk storage, and cache memories which provide temporary storageof at least some computer readable or computer usable program code toreduce the number of times code may be retrieved from bulk storageduring execution of the code.

Input/output (I/O) devices can be coupled to the system either directlyor through intervening I/O controllers. These devices may include, forexample, without limitation, keyboards, touch screen displays, andpointing devices. Different communications adapters may also be coupledto the system to enable the data processing system to become coupled toother data processing systems or remote printers or storage devicesthrough intervening private or public networks. Non-limiting examples ofmodems and network adapters are just a few of the currently availabletypes of communications adapters.

The illustrative embodiments relate to an integrated resource trackingsystem and, more particularly, to a method and system which integratesmultiple systems and applications together to determine trends byanalyzing tags and/or keywords of multiple users over the multipleintegrated systems and applications. The terms used below refer tosimilar objects described above with respect to FIG. 1 through FIG. 18.Thus, the following may be read in view of FIG. 1 through 18. Additionaldetails are provided below.

The illustrative embodiments relate to an integrated resource trackingsystem and, more particularly, to a method and system which integratesmultiple systems and applications together to determine trends byanalyzing tags and/or keywords of multiple users over the multipleintegrated systems and applications. Hereinafter the integrated resourcetracking system can be referred to as processes, systems, ADPTrackr, thetracker of the illustrative embodiments, and variants thereof.

Tags are basic words or phrases that are commonly used as referencepoints when describing an element of value or clarification of anassociated object. Tags can be linked to meta-data elements within aglobal human capital management platform. While tags can theoreticallybe linked to any data model objects, the following objects will supporttags in its first out-of-box release: global person, position,organization unit, job family, capability, and asset, as examples.

The tracker of the illustrative embodiments may be backed by a REST-JSONAPI, written in Ruby on Rails version 4; although this example, and theexamples below, do not necessarily limit the claimed inventions as otherimplementations are contemplated by the illustrative embodiments. Theapplication programming interface is used to import data from the ownerof the tracking program and third party application programminginterfaces, and to serve the tracker of the illustrative embodimentsfront-end. The development environment includes the Ruby Mine integrateddevelopment environment, and can use the railsAPI gem. The API mayinclude three models: work item, tag, and person, though more or fewermodels may be present. There is a many-to-many relationship betweenthem. The models inherit from Active Record: the object relationalmapping built into Rails, which comes preconfigured with sqlite3 fordevelopment, and the controllers of the illustrative embodiments cansupport at least the following actions: index, show, create, update, anddestroy. Resources are automatically routed, including nested resources.Application programming interfaces can be tested using the Postmanextension to GOOGLE® CHROME®.

The functionality behind the tracker of the illustrative embodiments mayinclude both product functionality and a new product. For example, thefunctionality may include:

(i) the ability to integrate external third party sources (such asCONFLUENCE®, OUTLOOK®, RALLY®, YAMMER®, etc.) with an aggregator inorder to track activities users perform on a daily, weekly, monthly, andyearly base, and to find top trends within an organization; and

(ii) the overlaying solution may leverage the parsing of external datain order to align with a goal and performance management product.

In addition, the tracker of the illustrative embodiments may providequick insights into the top trends within an organization. For example,the tracker may:

(i) link to the tools an organization uses already (in reference tothird party application);

(ii) integrate with numerous third party tools and have an exposedapplication programming interface that allows third party applicationsto integrate with its activity feed. The default applications may be asdescribed above;

(iii) bridge the gap between goal management and ongoing organizationactivity by allowing a user to manually and automatically linkactivities to defined goals. For example, users can manually select anactivity feed from an external source, and link it to a given goal.Automatically, users can associate a tag or reference to a particulargoal. When an activity comes in their feed with a link to that tag orreference, the activity is automatically associated with the relatedgoal;

(iv) provide quick insights into the trends within an organization byidentifying tags and most common terms and word references through textand data mining. These trends can be measured on an overall organizationmetric, by department, team, and individual, amongst other things;

(v) show cross-departmental collaboration and alignment by assessinginformation about individuals collaborating together on a givenactivity; and

(vi) provide an up-to-date status-tracking tool that shows theoverarching organizational activity in alignment with the overallorganizational, team, and individual goals.

The tracker of the illustrative embodiments may link relevantorganization activity (the work individuals do on a daily and ongoingbases) with human resources, performance, strategic planning, and talentmanagement, and their related databases containing relevant informationusing application programming interfaces. The tracker of theillustrative embodiments may aggregate information from third partyapplication programming interfaces and pool them to provide insightsinto the knowledge and work within the organization. This knowledge isthen leveraged in order to identify the trending activities within anorganization and used to identify internal dialect, acronyms, andknowledge, possibly tasks or goals that have not been previously done.

The tracker of the illustrative embodiments can also leverage theinformation gathered from third party integration tools in order tobuild out a competency catalog that is aligned with the work being donewithin the organization. From a strategic management perspective, theapplication may provide insights into the types of activities beingperformed in order to achieve various types of goals. For example, thetracker of the illustrative embodiments can identify that, for the goalto ‘Build a new product’, a product manager typically:

(i) Spends a predetermined time, typically a few weeks, of the goal'sstart dates doing research and meeting with the user experience researchand user interface teams;

(ii) spends the one to three months after the start of a goal in RALLY®or related programs building features and user stories, and in meetingswith the serum team; and

(iii) and three to six months into the goal the manager may work withproduct marketing in order to build go-to-market trends.

In this way, the technical features of the illustrative embodiment solvea technical problem or provide a technical contribution to currentsystems by integrating systems and tracking trends using terms, tags,and keywords from one or multiple users on a team or over an enterpriseor any subset thereof. The illustrative embodiment can monitor data frommany different real-time data sources to achieve these and othertechnical solutions.

From an individual review perspective, the tracker of the illustrativeembodiments can provide a timeline of all the work an individual hasdone throughout the course of the performance cycle. In this context,the individual can view an interactive map that shows their workpatterns, key collaborators, and overall accomplishments throughout theyear. The tracker of the illustrative embodiments has the ability tointegrate with feedback modules, and may provide a tool forbuilding/cascading strategic goals and defining performance reviewcycles. The tracker of the illustrative embodiments may provide tools tolink with project management and customer relationship managementsolutions in order to incorporate project plans, customer data, andrelated tasks into the application and its human resources processes.

Attention is now turned to the integration of MICROSOFT® OUTLOOK® withthe tracker of the illustrative embodiments. Current integration stepsmay include:

i. The user may be prompted with a credential entry screen, similar touserAuthFrontEnd.png. This front end may be generated by index.html. Onthis page, the user may supply their OUTLOOK® username and password, aswell as the particular OUTLOOK® folders they wish to integrate with,such as “outbox”, “in box”, and “calendar”;

ii. once the user submits the request, app-dev.js may execute one tothree processes to handle the user request; one for each OUTLOOK®folder;

iii. from this point forward, the user's inbox is provided as example,although other OUTLOOK® folders are handled in a similar fashion;

iv. the app-dev.js passes parameters to soap_request_inbox.js includingthe initial soap envelope id_request_inbox.xml as well as the user'scredentials;

v. the soap_request_inbox.js passes id_request_inbox.xml to the OUTLOOK®Exchange Web Server (EWS) along with the user's credentials via a CURLcommand;

vi. the EWS responds to the CURL command and returns an xml file ofunique IDs. These IDs correspond to all of the email items currently inthe user's inbox;

vii. the soap_request_inbox.js traverses the xml returned by EWS,extracts the unique IDs, and dynamically generates a second soap request(XML file);

viii. this second soap request now queries the EWS for further detail onthe emails identified by the unique IDs via a similar CURL command;

ix. the EWS returns yet another XML file, which is traversed for eachunique ID. The soap_request_inbox.js extracts fields including, but notlimited to: subject, sensitivity, dateRecieved, importance, dateSent,senderN arne, senderEmail, recipients, ccrecipients, and textBody froman email; and

x. those extracted fields are then persisted in MongoDB in the inboxcollection. Steps iii-ix are repeated for sent items, as well ascalendar information, if the user elects to pull/persist those data.

By way of another example, current RALLY® integration includes:

i. the rallyPullTasks.js currently fetches all current user Tasks viathe RALLY® application programming interface. When fetching the tasks,information such as task: description, Owner, Project, Parent, Children,TaskName, State, etc. is considered; and

ii. for each current task, rallyPullTasks.js then persists each taskusing the defined schema into MongoDB's rallyTasks collection.Currently, the product fetches and persists the current sprint's usertasks at the time of execution of rallyPullTasks.js. This gives asnapshot of what is being developed or worked on, but does not considerthe history of those work items.

Figures described above can be representative of block diagrams andunderlying functionality of the screen displays in accordance withaspects of the illustrative embodiments, which are implemented withinthe environments shown in FIG. 11 through FIG. 13. The figures describedand shown herein can thus be illustrative of a system, a method, and/ora computer program product and related functionality implemented on thecomputing system of FIG. 16 through FIG. 18, in accordance with aspectsof the illustrative embodiments.

Attention is now turned to profile definitions. The tracker of theillustrative embodiments may provide four distinct benefits forstrategic management. Each benefit may be divided into independentmodules within the overarching solution. These modules include strategicplanning and ongoing goal management, status reporting and activitytracking, performance management, and reporting and analytics.

Attention is first turned to the strategic planning and ongoing goalmanagement module. This module may provide tools for short and long termworkforce strategic plans through the use of guiding tools that supportand advise organization transformation activities within theorganization. The tracker of the illustrative embodiments supports thedefinition of strategic goals and enables the monitoring of workforceactivity towards these goals. It enables organizations to understandwhich goals are on track, and which goals may be delayed.

With the integration of activity tracking, subsequently described, thestrategic planning solution can predictively and proactively recognizechanges in organization practices and explicitly identify the followingitems:

i. planned and unplanned initiatives the workforce is actively focusingon;

ii. emerging trends that are surfacing with the organization;

iii. impact of changing current strategic initiatives, and who isimpacted most;

which departments are most aligned with the strategic vision;

iv. how the strategic vision has evolved over time; and

v. recommended adjustment to the strategic vision based on actualrecorded activities and their success rates.

The strategic planning and goal management module is unique due to manyfactors, including the ability for a software tool to analyze theactivity of an organization's organizational practices, and provideintelligent recommendations on desired changes to the corporatestrategy. This functionality is not available using traditional projectmanagement software. In the most rudimentary explanation, this moduleserves as an artificial intelligence engine to support the executiveleadership in understanding the internal dynamics of the organization byproviding technical capabilities to integrate different systemstogether, analyze information passed within the system and users, anddetermined trending points. Beyond the clear strategic benefits, thetracker of the illustrative embodiments changes the way goals andperformance management can be used within the organization.

The tracker of the illustrative embodiments need not be a top-down goalmanagement process, but rather an organically emerging goal builderwhich thrives on the activities individuals are doing today, andprovides insights on how to optimize that activity towards a morestrategic organizational purpose. This ability is a completely differentparadigm as to what organizations do today. This ability allowsindividuals to continuously monitor their ongoing goals and view theirtrending patterns, as described more in the next section particularlyover an entire enterprise using multiple integrated systems.

Attention is now turned to the next module, status reporting andactivity tracking. Purposes of the tracker of the illustrativeembodiments may include enriching organization operations, consolidatingreal information about an organization, and providing metrics forleaders, managers, and individuals to ensure the organization is alignedand individuals are on track with their tasks and responsibilities. Thetracker of the illustrative embodiments aims to reduce or eliminate theprocess of manual status reporting by providing simple tools for parsinginformation about individual activities. By building a visual pinboardof ‘My Work’, individuals can quickly visualize their work life and workactivity.

With full control on the individual level, the product aids individualsin managing their information dashboard, and filtering any conflictingor non-relevant information. By integrating with the software andapplications used by the workforce today, the tracker of theillustrative embodiments can track active work within the organization,and processes information to understand what work the individuals areactively doing.

Examples of tools that may be integrated with the solution providedherein include, but are not limited to:

OUTLOOK®—processing of work calendars and email exchanges;

RALLY®—processing of backlog definition, status, and ownershipassignment;

CONFLUENCE®—active posts, updates, and discussions raised by users;

SALESFORCE®—processing of sales data to identify closing times andgeneral sales metrics by user;

GOOGLE® DOCS®—for processing of shared information and collaborationacross teams; and

OFFICE® & SHAREPOINT®—ability to implement rich site summary (RSS)changes to a document for processing in the tracker of the illustrativeembodiments.

Beyond the software identified above, the tracker of the illustrativeembodiments may have exposed application programming interfaces on amarketplace of applications and may encourage third parties to provideintegration tools with their software such that the above examplesshould not be considered an exhaustive list.

Attention is now turned to tagging and activity tracking. Tagging andtext/data processing may enable the connection of free text withtangible keywords about an individual or a body of work. Tagging assistsin the processing of work feeds from third party solutions as taggingenables the software to make relevant connections across differentbodies of work.

Individual, team, and departmental trending tags may be identified bycounting the number of times a tag is used by theperson/team/department. Such trending tags may also be identified bymonitoring the frequency in which the tag was used. The more frequentlythe tag is used, and the most recently it has been used, the more thattag is trending. For teams and departments, the span of which the tag isused is also relevant. The span refers to the amount of people using it.

Watching trends: All users can put a ‘watch’ on a particular trend/tag.When ‘watching a tag’, the user gets prompted when a tag is being used.There are various prompt options that can define how the user isnotified, such as but not limited to email notification, applicationalert, weekly report, and others.

Promoting trends: Users such as managers and executive leaders canpromote trends for their span of control. When promoting a trend, allindividuals within that organization will see the trend as prompted bythe promoted individuals in their dashboard, and with a recommendationto work towards that trend. A message by the promoter can be providedalongside the trend.

Work dashboard: The work dashboard may provide insights on numeroustraditionally intangible factors that allow an individual to understandtheir purpose within an organization and to process their strengthswithin the organization.

Gauging alignment of goals: By processing departmental and individualgoals and analyzing the trends from the individual's work activity, thetracker of the illustrative embodiments can identify how aligned anindividual is to their existing goals, at an individual, departmental,and strategic level.

Managing individual goals: Individuals can generate new individualgoals. While they can do this manually, new goals are typicallygenerated based on recommendations from the system. Recommendations maybe based on the set of trends, that is, tags, surfacing from anindividual feed. Individuals may also be advised by the system tocollaborate with another individuals based on the similarity of theirgoals. They may then create a collaborating page to align between theirindividual initiatives.

When reviewing their dashboard, individuals can create auto-filters toprocess activities towards goals. By recognizing the type of activitiesassociated with a given goal, the system may recognize that a givenactivity should be auto-associated with a goal. Auto-associations arebased on a tag or set of tags used in the activity itself.

Additionally, when an individual views a given goal, he/she can definespecific tags or combinations of tags that are relevant for that goal.In doing such, he or she can also review the system recommended tags forthe goal, and adjust as needed.

Viewing work trends: In reviewing their dashboard and profile,individuals may see a tag cloud based on the top internal organizationacumen used by themselves. A tag cloud is like a word cloud, though theidentifiers are tags. The tag cloud is an exceptional way for peers andmanagers to better understand the professional knowledge and activeengagement the individual is currently focused on.

In some illustrative embodiments, additional tags cannot be added intothe word cloud. Individuals can choose to hide any of the tags withinthe cloud. In other illustrative embodiments, tags may be added orremoved from the tag cloud. Individuals might be able to see hiddentags. Individuals also may have access to individual work patternsincluding an understanding of their general work habits such as, workhour patterns; types of activities performed throughout the week basedon tools; emerging trends for them and their team based on tagsidentified in their work activity; and top collaborators andcontributors towards their goal or trend.

Understand organizational influence: Finally, individuals can measurethemselves on their level of expertise within the organization based ontag usage, collaboration span, and tag frequency. Collaboration span maybe a number of people with whom an individual collaborates, but alsocould be extended to team or organizational comparisons. Individuals canbe measured via the following influence factors:

i. Specialist: uniqueness of their tag cloud and strength of the tagswithin the cloud;

ii. Leader: breath of engagement in various goals and with variouscollaborators based on volume of different activities and volume ofpeople the individual is working with; and

iii. Team Player: high supporter of departmental goals and teaminitiatives.

FIG. 3, described above, is an example of a sample activity trackerdashboard. With an application that consolidates real-time informationabout work activities by an individual and groups of individuals, theprocess of traditional status reporting becomes obsolete. Just asmanagers and executives can promote trends down the organization,individuals and their managers can upstream recommendations andcommunications to their managers. These upstream notifications provideinsights and comments on a given tag, trend, or goal to ensureclarification is provided when needed.

Attention is now turned to the performance management modules. Thetracker of the illustrative embodiment's individual-centric performancemanagement is a continuously aligned process tracking ongoingactivities. With a spot-check report, individuals and managers cancompile a profile of individuals, including their activities, theiralignment to goals, collaborations with others, and tag cloudsassociated with them.

Feedback Gathering: At any point in time, an individual or manger canrequest and give feedback from/to other individuals. Based oninteraction patterns with other individuals, the tracker canintelligently request feedback from colleagues about a particularindividual.

Typical Feedback may be short, with an option to give an individual athumbs-up or accolades, possibly alongside a comment. A more formalfeedback review can also be requested in which the individual isevaluated based on the performance of their goals. Peers can berequested to give feedback on an individual's goal accomplishment, butonly if they had substantial involvement with the goal, as assessed bythe system. The system therefore is intelligent enough to understandwhich aspects of the goal the peer should participate in reviewing.

Annual Performance Review: The system expects that individuals and theirmanagers meet regularly to discuss the individual's performance. Thesystem therefore may be designed to support continuous communicationsand to make blockers and successes transparent to the manger. The annualreview provides a compilation of all achievement accomplished by theindividuals throughout the year. Differentiating the tracker of theillustrative embodiments from other solutions, the system provides clearinsights into the changes made to the individual's goals over the courseof the year. The system therefore not only provides an assessment of theindividual's capabilities, but also the potential volatility within theteam or organization. While the summary of the individual's performanceover the year can be accessed at any time, it is during the formalannual review that comments are documented between both the individualand manager. This session should be treated as a retrospective over theyear.

Both the individual and manager may provide their feedback in the formof a rating for each of the goals set by the individual, and a finalrating may be calculated. A flag may be raised if there is a highdiscrepancy between the individual and manager ratings, or if eitherrating is significantly different from the system's projected averagerating based on the activities gathered.

Talent Calibration: Managers or other users can maintain a continuoustalent calibration grid depicting their individuals under theirauthority on a performance versus potential axis. The system then may beextended to overlay a velocity versus impact metric, showing the volumeof activities an individual performs on an ongoing basis, their overallinfluence factors, and goal completion metrics.

Attention is now turned to the reporting and analytics module. Reportsand analytics are embedded throughout the tracker of the illustrativeembodiments to help users compare and analyze the information stored inthe system. The reporting engine provides a graph database analysis ofthe top and emerging trends within the organization, department, team,or individual. The reporting engine may provide insights into the toptrends that are associated with high, medium, and low performers, andlook for correlations that can help the organization improve itsorganizational structure and strategic initiatives. The reporting enginealso may identify the arteries of the organization based on individualinfluence factors and may provide search capabilities to fully drilldown into the data provided.

Detailed Functionality: The tracker of the illustrative embodiments maybe designed for knowledge workers, with specifically designedfunctionality for individual, line-manager, multi-level manager, andexecutive level users.

Interaction with the tracker and accessing the application: Integratedvia a single sign on function, with initial integration point to andREDBOX ENTERPRISE® and VANTAGE®. There may be an optional independentlogin.

On initial deployment of the system, the client may specify thefollowing elements, which are then used as part of the tracking process:What are the organization core values, what is the corporate missionstatement, and all strategically set goals for the organization.Information may be entered in a front end user interface designed forthe executive user. Tasks can be delegated to human resources orassistant users.

In addition, the client's administrator may specify which tools theywould like to integrate with the tracker of the illustrative embodimentsin order to process activity feeds. While it is not mandatory tointegrate with a tool, it is highly recommended for significantly higherinsights and functionality.

When each end user logs into the system, they will have the option toconfigure their individual connections to the enabled application. Ifthe client already has a single sign on between the third party look andtheir account via their internal portal, this will not be required.

The foregoing examples have been provided merely for the purpose ofexplanation and are in no way to be construed as limiting of the presentillustrative embodiment. While aspects of the present illustrativeembodiment have been described with reference to an exemplaryembodiment, it is understood that the words which have been used hereinare words of description and illustration, rather than words oflimitation. Changes may be made, within the purview of the appendedclaims, as presently stated and as amended, without departing from thescope and spirit of the present illustrative embodiment in its aspects.Although aspects of the present illustrative embodiment have beendescribed herein with reference to particular means, materials, andembodiments, the present illustrative embodiment is not intended to belimited to the particulars disclosed herein; rather, the presentillustrative embodiment extends to all functionally equivalentstructures, methods and uses, such as are within the scope of theappended claims.

Thus, the illustrative embodiments may provide for a method implementedin a computer system which comprises: integrating multiple systems andapplications; and determining trends by analyzing tags and/or keywordsof multiple users over the integrated systems and applications. Thismethod may be varied.

For example, the multiple systems and applications may be computersystems and software applications including communication applications.The method may include using APIs to import data from the multiplesystems and applications. In this case, the APIs may include at leastthree models: work item, tag, and person with many-to-many relationshipbetween them.

In another illustrative embodiment, the method may also includeintegrating external third party sources with an aggregator in order totrack activities users perform on a daily, weekly, monthly, and yearlybase, and find top trends within an organization. In this case, themethod may also include parsing of external data, in order to align witha goal and performance management product.

In still another illustrative embodiment, the integrator integrates withnumerous third party tools and has an exposed API that allows thirdparty applications to integrate with its activity feed. In yet anotherillustrative embodiment, the method further includes associating a tagor reference to a particular goal and, when an activity comes in a feedwith a link to the tag or reference, the activity is automaticallyassociated with a related goal. In still another illustrativeembodiment, identifying trends may include identifying tags and mostcommon terms and word references through text and data mining. In yetanother illustrative embodiment, the method may further includeanalyzing an activity and providing intelligent recommendations onrequired changes by identifying the trends.

Still other variations are possible. For example, the illustrativeembodiments may provide for a computer system for generating trendinginformation for recommendations, comprising: a hardware memory devicethat stores program instructions; and a processor that executes theprogram instructions and causes the computer system to perform the stepsof the above examples and any combination thereof. In another example,the illustrative embodiments may provide for a computer program productcomprising computer readable program instructions stored onnon-transitory computer readable storage medium, the computer readableprogram instructions causing a computing device to perform the steps ofthe above examples and any combination thereof.

The description of the different illustrative embodiments has beenpresented for purposes of illustration and description, and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art. Further, different illustrativeembodiments may provide different features as compared to otherillustrative embodiments. The embodiment or embodiments selected arechosen and described in order to best explain the principles of theembodiments, the practical application, and to enable others of ordinaryskill in the art to understand the disclosure for various embodimentswith various modifications as are suited to the particular usecontemplated.

What is claimed is:
 1. A computer network comprising: a first computer,operable by a first user, in communication with the server computer,wherein the first computer has a first processor and a firstnon-transitory computer readable storage medium storing first programcode which, when executed by the first processor, implements a firstsoftware tool having a first function and a second software tool havinga second function; a second computer, operable by a second user, incommunication with the server computer, the second computer having asecond processor and a second non-transitory computer readable storagemedium storing second program code which, when executed by the secondprocessor, implements the first software tool having the first functionand the second software tool having the second function; a servercomputer having a server processor and a server non-transitory computerreadable storage medium, wherein the server non-transitory computerreadable storage medium stores third program code which, when executedby the server processor, is configured to: gather first data regardingactivities of the first user and the second user utilizing the firstsoftware tool; gather second data regarding activities of the first userand the second user utilizing the second software tool; identify a setof digital tags indicating that the activities utilizing the firstsoftware tool and the activities utilizing the second software tool areassociated with a performance goal; and based on the first data and thesecond data, link activities of the first user and the second user tothe performance goal, wherein the performance goal is for any one of thefirst user, the second user, a team including at least the first user orthe second user, or an organization to which the first user and thesecond user belong, and wherein, in executing the third program code, acommunications link between the server computer and the first computeror the second computer is improved; and a physical display device incommunication with the server computer and having a graphical userinterface comprising: a first area of the graphical user interface thatdisplays proportional use information as a set of annular segments in acircle graph, the proportional use information comprising a proportionalcomparison of: use of the first software tool on both the first computerand the second computer relative to use of the second software tool onboth the first computer and the second computer; a second area of thegraphical user interface that displays a first set of selectable iconsrepresenting the first user, the second user, and the team, wherein thecircle graph in the first area is updated to display only usecorresponding to a selected icon of the first set in response to aselection of one of the first set of selectable icons from the secondarea of the graphical user interface; and a third area of the graphicaluser interface that displays a second set of selectable iconsrepresenting a set of performance goals, wherein the circle graph in thefirst area is updated to display only a total number of activitiescorresponding to a selected performance goal in response to a selectionof one of the second set of selectable icons from the third area of thegraphical user interface.
 2. The computer network of claim 1, whereinthe third program code is further configured to: based on the first dataand the second data, calculate a first amount of work the first usercontributed to the performance goal and calculate a second amount ofwork the second user contributed to the performance goal.
 3. Thecomputer network of claim 1, wherein the third program code is furtherconfigured to: based on the first data and the second data, calculate aperformance of the first user relative to the second user.
 4. Thecomputer network of claim 2, wherein the first user has a first assignedgoal and wherein the third program code is further configured to:responsive to a selection of an icon representing the first assignedgoal, updating the circle graph in the first area to display only atotal number of activities by the first user for the first assignedgoal.
 5. The computer network of claim 2, wherein the third program codeis further configured to: calculate, for the first user, a proportionaluse of the first software tool and the second software tool; andresponsive to a selection of an icon representing the first user fromthe second area of the graphical user interface, updating the circlegraph in the first area to display only proportional use of the firstsoftware tool and the second software tool by the first user.
 6. Thecomputer network of claim 5, wherein the third program code is furtherconfigured to: display which of the first user and the second userperforms a most number of particular activities towards the performancegoal, whereby it may be determined which user should be consultedregarding a question regarding the particular activities.
 7. Thecomputer network of claim 1, wherein the performance goal is for theorganization, wherein the organization has a plurality of departments,wherein the first user is in a first department and the second user isin a second department, and wherein the third program code is furtherconfigured to: based on the first data and the second data, displaycross-departmental collaboration between the first user and the seconduser.
 8. An apparatus comprising: a first computer, operable by a firstuser, wherein the first computer has a first processor and a firstnon-transitory computer readable storage medium storing first programcode which, when executed by the first processor, implements a firstsoftware tool having a first function and a second software tool havinga second function; a second computer, operable by a second user, thesecond computer having a second processor and a second non-transitorycomputer readable storage medium storing second program code which, whenexecuted by the second processor, implements the first software toolhaving the first function and the second software tool having the secondfunction; a server computer, in communication with the first computerand second computer, having a server processor and a servernon-transitory computer readable storage medium; wherein the servernon-transitory computer readable storage medium stores third programcode which, when executed by the server processor, is configured to:gather first data regarding activities of the first user and the seconduser utilizing the first software tool; gather second data regardingactivities of the first user and the second user utilizing the secondsoftware tool; identify a set of digital tags indicating that theactivities utilizing the first software tool and the activitiesutilizing the second software tool are associated with a performancegoal; and based on the first data and the second data, link activitiesof the first user and the second user to the performance goal, whereinthe performance goal is for any one of the first user, the second user,a team including at least the first user or the second user, or anorganization to which the first user and the second user belong, andwherein, in executing the third program code, the server computerimproves a communications link between the server computer and the firstcomputer or the second computer; and a physical display device incommunication with the server computer and having a graphical userinterface comprising: a first area of the graphical user interface thatdisplays proportional use information as a set of annular segments in acircle graph, the proportional use information comprising a proportionalcomparison of: use of the first software tool on both the first computerand the second computer relative to use of the second software tool onboth the first computer and the second computer; a second area of thegraphical user interface that displays a first set of selectable iconsrepresenting the first user, the second user, and the team, wherein thecircle graph in the first area is updated to display only usecorresponding to a selected icon of the first set in response to aselection of one of the first set of selectable icons from the secondarea of the graphical user interface; and a third area of the graphicaluser interface that displays a second set of selectable iconsrepresenting a set of performance goals, wherein the circle graph in thefirst area is updated to display only a total number of activitiescorresponding to a selected performance goal in response to a selectionof one of the second set of selectable icons from the third area of thegraphical user interface.
 9. The apparatus of claim 8, wherein the thirdprogram code is further configured to: based on the first data and thesecond data, calculate a first amount of work the first user contributedto the performance goal and calculate a second amount of work the seconduser contributed to the performance goal.
 10. The apparatus of claim 8,wherein the third program code is further configured to: based on thefirst data and the second data, calculate a performance of the firstuser relative to the second user.
 11. The apparatus of claim 9, whereinthe first user has a first assigned goal and wherein the third programcode is further configured to: responsive to a selection of an iconrepresenting the first assigned goal, updating the circle graph in thefirst area to display only a total number of activities by the firstuser for the first assigned goal.
 12. The apparatus of claim 9, whereinthe third program code is further configured to: calculate, for thefirst user, a proportional use of the first software tool and the secondsoftware tool; and responsive to a selection of an icon representing thefirst user from the second area of the graphical user interface,updating the circle graph in the first area to display only proportionaluse of the first software tool and the second software tool by the firstuser.
 13. The apparatus of claim 12, wherein the third program code isfurther configured to: display which of the first user and the seconduser performs a most number of particular activities towards theperformance goal, whereby it may be determined which user should beconsulted regarding a question regarding the particular activities. 14.The apparatus of claim 8, wherein the performance goal is for theorganization, wherein the organization has a plurality of departments,wherein the first user is in a first department and the second user isin a second department, and wherein the third program code is furtherconfigured to: based on the first data and the second data, displaycross-departmental collaboration between the first user and the seconduser.
 15. A method implemented in a server computer having a serverprocessor and a server non-transitory computer readable storage medium,the server computer being in communication with a first computer,operable by a first user, wherein the first computer has a firstprocessor and a first non-transitory computer readable storage mediumstoring first program code which, when executed by the first processor,implements a first software tool having a first function and a secondsoftware tool having a second function, the server computer being incommunication with a second computer, operable by a second user, thesecond computer having a second processor and a second non-transitorycomputer readable storage medium storing second program code which, whenexecuted by the second processor, implements the first software toolhaving the first function and the second software tool having the secondfunction, wherein the server non-transitory computer readable storagemedium stores third program code which, when executed by the serverprocessor, implements the method, the method comprising: gathering firstdata regarding activities of the first user and the second userutilizing the first software tool; gathering second data regardingactivities of the first user and the second user utilizing the secondsoftware tool; identifying a set of digital tags indicating that theactivities utilizing the first software tool and the activitiesutilizing the second software tool are associated with a performancegoal; improving, using the server computer, a communications linkbetween the server computer and the first computer or the secondcomputer by linking, based on the first data and the second data,activities of the first user and the second user to the performancegoal, wherein the performance goal is for any one of the first user, thesecond user, a team including at least the first user or the seconduser, or an organization to which the first user and the second userbelong; and displaying, on a physical display device in communicationwith the server computer, a graphical user interface comprising: a firstarea of the graphical user interface that displays proportional useinformation as a set of annular segments in a circle graph, theproportional use information comprising a proportional comparison of:use of the first software tool on both the first computer and the secondcomputer relative to use of the second software tool on both the firstcomputer and the second computer; a second area of the graphical userinterface that displays a first set of selectable icons representing thefirst user, the second user, and the team, wherein the circle graph inthe first area is updated to display only use corresponding to aselected icon of the first set in response to a selection of one of thefirst set of selectable icons from the second area of the graphical userinterface; and a third area of the graphical user interface thatdisplays a second set of selectable icons representing a set ofperformance goals, wherein the circle graph in the first area is updatedto display only a total number of activities corresponding to a selectedperformance goal in response to a selection of one of the second set ofselectable icons from the third area of the graphical user interface.16. The method of claim 15 further comprising: calculating, based on thefirst data and the second data, a first amount of work the first usercontributed to the performance goal and a second amount of work thesecond user contributed to the performance goal.
 17. The method of claim15 further comprising: calculating, for the first user, a proportionaluse of the first software tool and the second software tool; andaltering a physical display device by displaying which of the first userand the second user performs a most number of particular activitiestowards the performance goal.